﻿using CozeDomain.Entities;
using CozeDto.SysDicTypeDtos;
using CozeDto.SysDicDtos;
using D.UtilCore.Dtos;
using D.UtilFreesqlOrm;

namespace CozeDomain.IServices
{
    /// <summary>
    /// 系统字典参数接口
    /// </summary>
    public interface ISysDicTypeService : IBaseService<SysDicTypeEntity>
    {
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="reqAddSysDicType"></param>
        /// <returns></returns>
        Task<ApiResult<int>> AddSysDicTypeAsync(ReqAddSysDicType reqAddSysDicType);

        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="uniqueCodes"></param>
        /// <returns></returns>
        Task<ApiResult<int>> DeleteSysDicTypeAsync(List<string>? uniqueCodes);

        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="reqUpdateSysDicType"></param>
        /// <returns></returns> 
        Task<ApiResult<int>> UpdateSysDicTypeAsync(ReqUpdateSysDicType reqUpdateSysDicType);

        /// <summary>
        /// 单个查询
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns> 
        Task<ApiResult<RepSysDicTypeInfo>> GetSysDicTypeAsync(string id);

        /// <summary>
        /// 分页查询
        /// </summary>
        /// <param name="pageQuery"></param>
        /// <returns></returns>
        Task<ApiResult<PageModel<SysDicTypeEntity>>> GetPagesAsync(ReqQuerySysDicTypePage query);

        /// <summary>
        ///  下拉选择框查询
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        Task<ApiResult<List<RepSelect>>> QueryDicTypeSelect();
    }
}
